package com.billing.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.bouncycastle.asn1.crmf.PKIPublicationInfo;

import com.billing.model.entity.ManagerUsersBean;
import com.billing.model.entity.TOrganization;
import com.billing.model.entity.TUser;
import com.billing.model.entity.TUserBuffer;
import com.billing.model.entity.TUserList;

public interface UserService {
	/**
	 * 获取档案列表信息
	 * @param name 员工名称
	 * @param dept 部门名称
	 * @param starttime 起始时间
	 * @param endtime 结束时间
	 * @param currentPage 
	 * @param pageSize
	 * @return
	 */
	public List<TUser> selectTUserList(String name,String dept,Long starttime,Long endtime,String jobnumber,
			int organizationid,int currentPage,int pageSize);
	/**
	 * 获取档案列表条数信息
	 * @param name 员工名称
	 * @param dept 部门名称
	 * @param starttime 起始时间
	 * @param endtime 结束时间
	 * @param currentPage 
	 * @param pageSize
	 * @return
	 */
	public int selectTUserNum(String name,String dept,Long starttime,Long endtime,String jobnumber,int organizationid);
	
	/**
	 * 根据ID获取信息
	 * @param name
	 * @return
	 */
	public TUser selectTUserId(String id);
	/**
	 * 修改个人档案信息
	 * @param attendance
	 * @return
	 */
	public int updateTUser(TUser user);
	public ManagerUsersBean getUserByNameAndPwd(String loginname , String password);
	
	/**
	 * 新增员工信息
	 * @param usert
	 * @return
	 */
	public int insertTUser(TUser user);
	
	public int insertTUserList(TUserList users);
	
	/**
	 * 根据ID删除员工信息
	 * @param id
	 * @return
	 */
	public int deleteTUser(int id);
	
	/**
	 * 登陆验证获取用信息
	 * @param loginname
	 * @param password
	 * @return
	 */
	public TUser getTUser(String loginname,String password);
	
	/**
	 * 根据ID获取信息
	 * @param name
	 * @return
	 */
	public TUser selectTUserPayId(String id);
	/**
	 * 根据ID获取信息
	 * @param id
	 * @return
	 */
	public TUser getTUserById(@Param("id")String id);
	/**
	 * 根据ID获取信息
	 * @param id
	 * @return
	 */
	public TUser getTSubsidyById(String id);
	/**
	 * 判断手机号码是否存在
	 * @param mobile
	 * @return
	 */
	public boolean userMobileIsExist(String mobile,String orgid,String userid);
	/**
	 * 判断身份证号码是否存在
	 * @param mobile
	 * @return
	 */
	public boolean userIdcardIsExist(String idcard,String orgid,String userid);
	/**
	 * 获取档案列表信息
	 * @param currentPage 
	 * @param pageSize
	 * @return
	 */
	public List<TUser> selectTUserLoginnameList(String loginname,
			int organizationid,int currentPage,int pageSize);
	/**
	 * 获取档案列表条数信息
	 * @param currentPage 
	 * @param pageSize
	 * @return
	 */
	public int selectTUserLoginnameNum(String loginname,int organizationid);
	/**
	 * 修改用户资料审核状态
	 * @param userId
	 * @param examineStatus
	 * @return
	 */
	public int updateExamineStatus(String userId,String examineStatus);
	/**
	 * 修改用户工作状态
	 * @param userId
	 * @param jobStatus
	 * @return
	 */
	public int updateJobStatus(String userId,String jobStatus);
	/**
	 * 根据镜像表修改用户基本资料
	 * @param userBuffer
	 * @return
	 */
	public int updateByBuffer(TUserBuffer userBuffer);
	/**
	 * 根据id在离职的时候更新员工的归档时间
	 * @param id
	 * @param atime时间戳
	 */
	public int updateArchivingTime(String id, long atime);
	/**
	 * 修改密码
	 * @param md5Encode
	 * @return
	 */
	public int updatePassword(String newPassword,String oldPassword);
	/**
	 * 获取当前用户的公司列表
	 * @param userid
	 * @return
	 */
	public List<TOrganization> getOrganization(String userid);
	
	public TUser getPhoneNumber(String mobile);
	
	public int updatearchivingtime(String mobile);
}
